package bancosys.tec.datadigester;

import java.util.Map;

/**
 * Representa o tipo responsável por ler um arquivo e montar um DigesterBean. Um DigesterDriver sabe ler apenas um arquivo, e monta apenas
 * um DigesterBean.
 * 
 * @param <T> DigesterBean que é construído pelo driver.
 */
public interface DigesterDriver<T extends DigesterBean> {

    /**
     * Extrai o bean a partir do arquivo físico.
     * 
     * @param file arquivo.
     * @param driverProperties properties para parse do driver.
     * @return bean representando o arquivo.
     */
    T parse(DigesterFile file, Map<String, String> driverProperties);
}
